{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from IPython.core.interactiveshell import InteractiveShell\n",
    "InteractiveShell.ast_node_interactivity = 'all'  # default is ‘last_expr’\n",
    "\n",
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.append('/data/home/marmot/camtrap/PyCharm/CameraTraps-benchmark')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import json\n",
    "import os\n",
    "from collections import OrderedDict, defaultdict, Counter\n",
    "from copy import deepcopy\n",
    "from random import sample\n",
    "\n",
    "from PIL import Image\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from data_management.cct_json_utils import CameraTrapJsonUtils, IndexedJsonDb\n",
    "from visualization.visualization_utils import plot_stacked_bar_chart"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Species distribution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_images_annotations(file_template):\n",
    "    # combine train and val splits for the image databases\n",
    "    all_images = []\n",
    "    all_annotations = []\n",
    "\n",
    "    for i in ('train', 'val'):\n",
    "        with open(file_template.format(i)) as f:\n",
    "            db = json.load(f)\n",
    "        print('{} has {} images, {} annotations'.format(i, len(db['images']), len(db['annotations'])))\n",
    "        all_images.extend(db['images'])\n",
    "        all_annotations.extend(db['annotations'])\n",
    "    \n",
    "    print('In total there are {} images, {} annotations'.format(len(all_images), len(all_annotations)))\n",
    "    return all_images, all_annotations, db\n",
    "\n",
    "\n",
    "def show_species_dist(file_template, plot_title='', ordered_species_list=None, log_scale=False):\n",
    "    all_images, all_annotations, db = get_images_annotations(file_template)\n",
    "    \n",
    "    db_indexed = IndexedJsonDb(db)  # assume both train and val have the same categories field\n",
    "\n",
    "    # get species by location\n",
    "    \n",
    "    image_to_loc = {}\n",
    "    loc_to_species = defaultdict(Counter)\n",
    "\n",
    "    for i in all_images:\n",
    "        image_to_loc[i['id']] = i['location']\n",
    "\n",
    "    for a in all_annotations:\n",
    "        cat_name = db_indexed.cat_id_to_name[a['category_id']]\n",
    "        loc = image_to_loc[a['image_id']]\n",
    "        loc_to_species[loc].update([cat_name])\n",
    "    \n",
    "    all_species = set()\n",
    "    for v in loc_to_species.values():\n",
    "        for k in v.keys():\n",
    "            all_species.add(k)\n",
    "    \n",
    "    loc_to_species_sorted = sorted(loc_to_species.items(), key=lambda x: sum(x[1].values()), reverse=True)\n",
    "\n",
    "#     print('')\n",
    "#     for index, item in enumerate(loc_to_species_sorted):\n",
    "#         print(index, item)  # the same content as the plot\n",
    "        \n",
    "    series_labels = ordered_species_list\n",
    "    #series_labels.reverse()  # uncomment this line for CCT-20\n",
    "    \n",
    "    col_labels = [x[0] for x in loc_to_species_sorted] # locations are the key in loc_to_species_sorted\n",
    "    \n",
    "    species_data = []\n",
    "    for s in series_labels:\n",
    "#         if s == 'empty' or s == 'gazellethomsons' or s == 'zebra' or s == 'gazellegrants' or s == 'human' or s == 'guineafowl':\n",
    "#             continue\n",
    "        s_across_locs = []\n",
    "        for loc, counter in loc_to_species_sorted:\n",
    "            s_across_locs.append(counter[s])\n",
    "        species_data.append(s_across_locs)\n",
    "    \n",
    "    fig = plot_stacked_bar_chart(species_data, series_labels, col_labels=col_labels, \n",
    "                             x_label='Location ID', \n",
    "                             y_label='Number of images', log_scale=log_scale)\n",
    "\n",
    "    fig.suptitle(plot_title)\n",
    "    \n",
    "    return fig"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# get the most populous species\n",
    "def get_most_populous_species(file_template):\n",
    "\n",
    "    all_annotations = []\n",
    "\n",
    "    for i in ('train', 'val'):\n",
    "        with open(file_template.format(i)) as f:\n",
    "            db = json.load(f)\n",
    "        print('{} has {} images, {} annotations'.format(i, len(db['images']), len(db['annotations'])))\n",
    "        all_annotations.extend(db['annotations'])\n",
    "\n",
    "    db_indexed = IndexedJsonDb(db) # assume same categories in train and val\n",
    "\n",
    "    species_counter = Counter()\n",
    "    for a in all_annotations:\n",
    "        cat_name = db_indexed.cat_id_to_name[a['category_id']]\n",
    "        species_counter.update([cat_name])\n",
    "\n",
    "    species_counter_sorted = sorted(species_counter.items(), key=lambda x: x[1], reverse=True)\n",
    "    return species_counter_sorted"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Species distribution - CCT\n",
    "\n",
    "Uncomment the .reverse() line in the function above so that \"empty\" is in red."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train has 180690 images, 181844 annotations\n",
      "val has 62410 images, 63274 annotations\n"
     ]
    }
   ],
   "source": [
    "file_template = '/beaver_disk/camtrap/caltech/benchmark/caltech_images_20190919_{}.json'\n",
    "ordered_species = ['empty', 'car']  # if you want to control the first few species\n",
    "plot_title = 'CCT (top 20 categories)'\n",
    "\n",
    "species_counter_sorted = get_most_populous_species(file_template)\n",
    "ordered = [i[0] for i in species_counter_sorted]\n",
    "ordered = ordered[:20] # to be the same as on https://beerys.github.io/CaltechCameraTraps/\n",
    "ordered.reverse() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train has 180690 images, 181844 annotations\n",
      "val has 62410 images, 63274 annotations\n",
      "In total there are 243100 images, 245118 annotations\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = show_species_dist(file_template, plot_title=plot_title, ordered_species_list=ordered, log_scale=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "fig.savefig('/home/marmot/camtrap/mnt/intermediate/dataset_paper/species_dist_cct_all.svg', \n",
    "            format='svg', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train has 32865 images, 32873 annotations\n",
      "val has 25000 images, 25070 annotations\n",
      "In total there are 57865 images, 57943 annotations\n",
      "\n",
      "There are 17 species:\n",
      "{'unlabeled_animal', 'car', 'fox', 'deer', 'opossum', 'bobcat', 'raccoon', 'dog', 'skunk', 'cat', 'squirrel', 'empty', 'coyote', 'rodent', 'badger', 'rabbit', 'bird'}\n",
      "\n",
      "ordered_species_list of 17 items:\n",
      "['squirrel', 'skunk', 'rodent', 'raccoon', 'rabbit', 'opossum', 'fox', 'dog', 'deer', 'coyote', 'cat', 'bobcat', 'bird', 'badger', 'car', 'unlabeled_animal', 'empty']\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cct_log_fig = show_species_dist(file_template, plot_title=plot_title, ordered_species_list=ordered_species,\n",
    "                               log_scale=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Species distribution - SS season 1\n",
    "\n",
    "49 species is too many to show. Show top 20 instead"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "ss_file_template = '/beaver_disk/camtrap/ss_season1/benchmark/ss_season1_images_20190919_{}.json'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train has 314591 images, 315605 annotations\n",
      "val has 96823 images, 97253 annotations\n"
     ]
    }
   ],
   "source": [
    "species_counter_sorted = get_most_populous_species(ss_file_template)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "ordered = [i[0] for i in species_counter_sorted]\n",
    "ordered = ordered[:20] # to be the same as on https://beerys.github.io/CaltechCameraTraps/\n",
    "ordered.reverse() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train has 314591 images, 315605 annotations\n",
      "val has 96823 images, 97253 annotations\n",
      "In total there are 411414 images, 412858 annotations\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_title = 'SS Season 1 (top 20 categories)'\n",
    "\n",
    "fig = show_species_dist(ss_file_template, plot_title=plot_title, ordered_species_list=ordered, log_scale=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "fig.savefig('/home/marmot/camtrap/mnt/intermediate/dataset_paper/species_dist_ss_log.svg', \n",
    "            format='svg', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train has 314591 images, 315605 annotations\n",
      "val has 96823 images, 97253 annotations\n",
      "In total there are 411414 images, 412858 annotations\n",
      "\n",
      "There are 49 species:\n",
      "{'waterbuck', 'baboon', 'otherbird', 'wildcat', 'zebra', 'warthog', 'human', 'jackal', 'giraffe', 'hyenaspotted', 'empty', 'gazellethomsons', 'leopard', 'rodents', 'cheetah', 'aardwolf', 'caracal', 'serval', 'bushbuck', 'hartebeest', 'lionmale', 'hare', 'monkeyvervet', 'lionfemale', 'ostrich', 'genet', 'topi', 'elephant', 'secretarybird', 'porcupine', 'impala', 'aardvark', 'batearedfox', 'koribustard', 'civet', 'reptiles', 'reedbuck', 'rhinoceros', 'guineafowl', 'dikdik', 'mongoose', 'hyenastriped', 'buffalo', 'honeybadger', 'hippopotamus', 'wildebeest', 'gazellegrants', 'eland', 'zorilla'}\n",
      "\n",
      "ordered_species_list of 20 items:\n",
      "['koribustard', 'lionmale', 'wildebeest', 'impala', 'dikdik', 'reedbuck', 'buffalo', 'lionfemale', 'elephant', 'giraffe', 'hartebeest', 'otherbird', 'warthog', 'hyenaspotted', 'guineafowl', 'human', 'gazellegrants', 'zebra', 'gazellethomsons', 'empty']\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbMAAAEuCAYAAAAEFfwaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsnXe4VNXVh98fiBUEEWxUa1BRiSCJggaiWBIVTbCigjFqEpUY4yf6pVjyGUuKUbHEQsRIYsFGjImKDSUWBBFRscQSrg2NgmBX1vfH3gPnDjNz586dM+Xe9T7PPPecfXZZU+5ZZ+299loyMxzHcRynnmlXbQEcx3Ecp6W4MnMcx3HqHldmjuM4Tt3jysxxHMepe1yZOY7jOHWPKzPHcRyn7nFl5jg1jqS/Stqv2nI0haRbJO1ZbTmctokrM6ciSBoq6V+SFkt6T9IMSTvEa6tK+p2kBklLJb0i6YICfY2UNEfSB5LelXSvpL6Vei8tQVJ/SXdFuZvc5ClpW2A74PZ4PlbSwynJtpqkqyW9JmmJpCcl7ZVVZ1dJ8yV9JOl+SX0Sl88Fzk5DNsdpCldmTupIWhu4A7gY6Ar0AM4EPo1VTgMGAYOBTsBw4Mk8fW0GXAv8FOgMbAxcCixL7x2Ulc+BG4Gjiqx/LDDZKhPdYBVgAfANwmf7C+DGzIOCpG7ALbG8K/AEcEOmsZk9DqwtaVAFZHWcxpiZv/yV6ougqBYVuH4HcGKRfY0C5hS43g44Ffg38F+C4uiauH4T8BawGJgObJ249i3gWWAJ8DpwcuLa0cBLwHvAVGCjxDUDfgC8CLwPXAKoifexWfj3a/L9vgwMjcdbAp8AXwJLM58pQfFcC7wDvAb8HGgXr40FZhAeJBYD84Fdm/HdzQW+G4+PAf6VuLYW8DHQL1F2JXB6tX9z/mp7L7fMnErwAvClpEmS9pK0Ttb1R4GTJP1I0jaSVKCv2UA/SRdIGi6pY9b1ccB+BOtiI1Yolwz/ADYH1ot9TU5cuxo41sw6Af2B+wAkfRM4BzgQ2JCgMK7PGndvYAfClOCBwB4F3kNRSFqLYHk+D2BmzxGU5iNm1tHMusSqFxMU2ibxfR8BHJno6msEpdgNOB24RVLXIsZfH9gCeCYWbQ08lbluZh8SHhq2TjR7jvAZOE5FcWXmpI6ZfQAMJVgwVwLvSJoab5YQFMV5wGjC1NXrksbk6etlYBhhqvJG4F1J1ySU2rHAz8yswcw+Bc4ARklaJbafaGZLEte2k9Q5tv0c2ErS2mb2vpnNjuWjgYlmNju2Ow3YMWud7lwzW2Rm/wHuBwaU9GE1JqOsluSrIKk9cBBwWnxfrwK/Aw5PVFsI/MHMPjezGwjK8duFBpbUgaDoJ5nZ/FjckWDdJVlMmBrOsCQht+NUDFdmTkUws+fMbKyZ9SRYPRsBf4jXvjSzS8xsCOFGeDYwUdKWefp61MwONLPuwM7ALsDP4uU+wK2SFklaRLAUvgTWl9Re0rmS/i3pA+DV2KZb/PtdwlTja5IelLRjLN+IYI1lxl9KmMLskRDrrcTxR4Qbf0tZFP92KlCnG7BqUr54nJTtdTOzrOsb5etQUjvgz8BnwPGJS0uBtbOqr01jZdspIbfjVAxXZk7FiU/61xCUWva1j83sEsL04FZF9DWT4JSQ6WsBsJeZdUm8Vjez14FDgZHAboRpub6xjTJ9mdlIwhTkbQTLD+ANgpIMlcP037qEdbXUSEzjbZEszqr2LsGiTHoV9s6SrUfW1G1vwntaiVjvamB9wlrZ54nLz5CYQoyfw6asmIaEsK73FI5TYVyZOakjqZ+kn0rqGc97AYcQ1sqQdKKkYZLWkLRKnGLsRA6Pxujif7Sk9TJ9A/tm+gIuB87OuIxL6i5pZLzWieBB+V9gTeDXiX5XlTRaUud4A/+AYNEB/AU4UtIASavFdo/FKb3mfhaStDrBmkLS6rHPfNxJWAfL8DbQU9KqEKxagtI9W1Kn+L5PAq5LtFkPGCepg6QDCArnzjzjXRav72NmH2dduxXoL+m78T38EpibmIYkyvqPAu/HcVLBlZlTCZYQnBAek/QhQfHMI7jXQ/CI+x1hqu5d4DiCVfByjr4WEZTX05KWAv8k3GTPj9cvJHgb3i1pSRzra/HatYQpttcJXouP0pjDgVfjFOQPgMMAzOxegjv6zcCbBGvk4FI+CIIF9TErrJmPiQ4eebgCGJ2wrO6Lbd+S9G4sOwH4kODk8TBB+U5M9PEYwenlXcIU7igz+2/2QFERHktY73sr7vlbKmk0gJm9Q5iKPZtgOX+NxOegsG/wQwsu+o5TUdR4Kt1xnFpD0l+AG83sthLajgW+b2ZDyy7YymPdDFxtZvmsPsdJjVWqLYDjOIUxs0OrLUMxmNl3qy2D03bxaUbHcRyn7vFpRsdxHKfuccvMcRzHqXtcmTmO4zh1jyszx3Ecp+5xZeY4juPUPa7MHMdxnLrHlZnjOI5T97gycxzHceoeV2aO4zhO3ePKzHEcx6l7XJk5juM4dY8rM8dxHKfucWXmOI7j1D2uzBzHcZy6x5WZ4ziOU/e4MnMcx3HqnlaZabpbt27Wt2/faovhOE4dMGvWrHfNrHu15XBaRqtUZn379uWJJ56othiO49QBkl6rtgxOy/FpRsdxHKfucWXmOI7j1D2uzBzHcZy6x5WZ4ziOU/e4MnMcx6kRJPWVNK/EthtJmhKPx0qaUAZ5hknaqQz9PCBpUEv7KUSr9GZ0HMcpB2cKK2d/pxsqZ38ZJK1iZm8Ao8rc9TBgKfCvZsryRZnlaBK3zBzHcWoQSZtIelLSzpL+JOnpeD48Xh8r6SZJfwPuzmHV9ZL0T0nPSzo9tmlUR9LJks6Ix+MkPStprqTrJfUFfgD8RNKcKMc+kh6LckyTtH5se4akKyTdDVwraY3Yx1xJNwBrpP15uWXmOI5TY0j6CnA9cCSwK4CZbSOpH0FxbRGr7ghsa2bvReWTZDDQH/gImCnp78C7BYY9FdjYzD6V1MXMFkm6HFhqZr+Ncq0DfN3MTNL3gVOAn8b2A4GhZvaxpJOAj8xsW0nbArNb8HEURWqWmaSJkhZmPQX8RtL8qK1vldQlce00SS/Fp4g9EuV7xrKXJJ2alrxOmVEqsymO0xboDtwOHGZmc4ChwJ8BzGw+8BqQUWb3mNl7efq5x8z+a2YfA7fEfgoxF5gs6TAg3zRhT+AuSU8D/wNsnbg2NY4FsAtwXZR5buw7VdKcZrwG2DOr7B6gv5ltC7wAnAYgaSvgYMIHsydwqaT2ktoDlwB7AVsBh8S6juM4rZXFwAJgSDwv9GT4YYFr2et9RlBSyfv+6onjbxPutwOBWZJyzdxdDEwws22AY7PaZ8tS1vXGpkhNmZnZdOC9rLK7EwuDjxK0PMBI4Hoz+9TMXgFeIpjIg4GXzOxlM/uMYHaPTEtmx3GcGuAzYD/gCEmHAtOB0QBxerE38HwR/YyQ1FXSGrG/GcDbwHqS1pW0GrB37Lcd0MvM7idMHXYBOgJLgE6JPjsDr8fjMQXGTsrcH9i2CHlbRDUdQL4H/CMe9yA8iWRoiGX5yh3HcVotZvYhQdH8BPg30D5O7d0AjDWzT4vo5mHC9OQc4GYze8LMPgfOAh4D7gDmx7rtgeviGE8CF5jZIuBvwP4ZBxDgDOAmSQ9ReP3tMqCjpLkE5fh48e++NGSWniUYFyTvMLP+WeU/AwYB34kLiZcAj5jZdfH61cCdBGW7h5l9P5YfDgw2sxNyjHUMcAxA7969B772mscOrSoSpPjbcpxyIWmWmaW6B8pJn4pbZpLGEJ44RtsKTdoA9EpU6wm8UaB8JczsCjMbZGaDunf3bA6O4zhtiYoqM0l7AuOBfc3so8SlqcDBklaTtDGwOcEsnQlsLmljSasSnESmVlJmx3Ecp/ZJbZ+ZpL8Sdo93k9QAnE7wXlwNuEfBdftRM/uBmT0j6UbgWYK3zXFm9mXs53jgLsKc7kQzeyYtmR3HcZz6JNU1s2oxaNAg8+ScVcbXzJw6wdfMWgcezspxHMepe1yZOY7jOHWPKzPHcZwaQtLS+Hd5SpcqyFByKppq4YGGHcdx8jB66LKyLvxOfrhd0UFLU0rp0mpxy8xxHKcGSVpHklYvkAbmlpjq5UVJ5yfaL5V0nqRZMV3LYIUkmS9L2jcxxkOSZsfXSok4Y5zc30iaGYPEH1upz6A5uDJzHMepfY6DkAYGOASYJCkT5HcAcBCwDXCQpEygibWAB8xsICHG4v8BI4D9CSGtABYCI8xs+9jHRTnGPgpYbGY7ADsAR8f9wDWFTzM6juPUPkMJEesxs/mSkmlg7jWzxQCSngX6EGLafgb8M9Z5GvjUzD6P8Rf7xvIOwARJA4AvE30m2R3YVlJmyrMzIbDFK+V7ey3HlZnjOE7tU2itLRl0+EtW3Nc/T4QMXJapZ2bLEuldfkKIpL8dYabukzxjn2Bmd5Uoe0XwaUbHcZzap9Q0ME3RGXjTzJYBhxMiLWVzF/BDSR0y40taqwxjlxVXZo7jOLXPpZSWBqaYfsdIepQwxZgr2edVhFCDs6NDyh+pwVk9D2flpIOHs3LqBA9n1Tpwy8xxHMepe1yZOY7jOHWPKzPHcRyn7nFl5jiO49Q9rswcx3GcuseVmeM4jlP3uDJzHMepEyTdKalLPF6ap841idBT+fp5QFJq2xEk/W9afeej5ja+OY7j1Arbj/+0rJslZ5+3WtEpYHJhZt8qlywp87/Arys5oFtmjuM4NYKkUySNi8cXSLovHu8q6TpJr0rqltVGkiZIelbS34H1EtcGSnowpoG5S9KGiaaHSfqXpHmSBsf6a0maGNO9PClpZCzPmQZG0oaSpkuaE/vZWdK5wBqxbHKqH1gCV2aO4zi1w3Rg53g8COgYYyIOBR7K02Z/4CuEFDBHAzsBxHYXA6NiGpiJwNmJdmuZ2U7Aj+I1gJ8B98V0L8OB38Q4jPnSwBwK3GVmAwjBiueY2anAx2Y2wMxGt+zjKB6fZnQcx6kdZgEDJXUiRLmfTVBqOwPjgNNytNkF+KuZfQm8kbHmCAquP3CPJAhBhN9MtPsrgJlNl7R2XIvbHdhX0smxzuqEoMb50sDMBCZGxXmbmc1p6QdQKq7MHMdxaoSYb+xV4EjgX8BcgoW0KfBcoaY5ygQ8Y2Y7FtnGYpvvmlmjiPwK2jBnGhhJuwDfBv4s6Tdmdm0BOVPDpxkdx3Fqi+nAyfHvQ8APCNN3+ZxRpgMHx3WtDQnKD0KKmO6SdoQw7Shp60S7g2L5UMIU4mJCupcTovJC0ldj3ZxpYCT1ARaa2ZXA1cD2sf7nmbqVwi0zx3Gc2uIhwtrVI2b2oaRPyL9eBnAr8E1CNukXgAcBzOyzOC14kaTOhPv9H4BnYrv3Jf0LWBv4Xiz7VawzNyq0V4G9CWlg+hLSwAh4B9gPGAb8j6TPgaXAEbGfK2Ifsyu1bpZaChhJEwkfwkIz6x/LuhJy8fQlfEgHmtn78cO5EPgW8BEhV8/s2GYM8PPY7f+Z2aSmxvYUMDWAp4Bx6gRPAdM6SHOa8Rpgz6yyU4F7zWxz4N54DrAXYTFxc+AY4DJYrvxOB74GDAZOl7ROijI7juM4dUhqyszMpgPvZRWPBDKW1SSCmZopv9YCjwJd4tzvHsA9Zvaemb0P3MPKCtJxHMdp41TaAWR9M3sTIP7NbO7rASxI1GuIZfnKHcdxHGc5teLNmCvEixUoX7kD6RhJT0h64p133imrcI7jOE5tU2ll9nYmnEr8uzCWNwC9EvV6Am8UKF8JM7vCzAaZ2aDu3buXXXDHcRyndqm0MpsKjInHY4DbE+VHxBhjXyfseXiTsLdhd0nrRMeP3WOZ4ziO4ywnNWUm6a/AI8BXJDVIOgo4Fxgh6UVgRDwHuBN4GXgJuJIQKwwze4+w72FmfJ0VyxzHcVolce9Xmv33lTQvzTGqQWqbps3skDyXds1R14Dj8vQzkRVBMB3HcSrGmje+X9bNkh8duE6TKWBi8F+nmdSKA4jjOI7DiqSbkobF9C03SnpB0rmSRkt6XNLTkjaN9a6RdLmkh2K9vWN531g2O75WUpLF1KkXPJyV4zhO7bIdsCVhz+7LwFVmNljSj4ETgBNjvb7ANwgBie+XtBnBwW6EmX0iaXNClPzsSCfF1KkLXJk5juPULjMze3Ml/Ru4O5Y/zYqAwgA3mtky4EVJLwP9gFeACZIGAF8CW+Tov0MRdeoCV2atGY+P6Dj1zqeJ42WJ82U0vn/nSufyE+BtgnXXDvgkR//F1KkLfM3McRyn/jlAUru4jrYJIf1LZ+DNaLEdTkjOmU0xdeoCV2aO4zj1z/OE1C//AH5gZp8AlwJjJD1KmD78MEe7YurUBamlgKkmngImUs1pRp/idOqEek8BI+ka4A4zm1JtWaqJW2aO4zhO3eMOII7jOHWMmY2ttgy1gFtmrZkhvastgeM4TkVwZeY4juPUPU0qM0kHSOoUj38u6RZJ26cvmuM4juMURzGW2S/MbImkocAewCTgsnTFchzHcZziKUaZfRn/fhu4zMxuB1ZNTyTHcRwHQNIZkk6WdJak3WLZq5K6FdMuHjerbb1SjDfj65L+COwGnCdpNXytzXGcNkDvuQvKulnyP9v2ajIFTC7M7JeljtmStvVEMUrpQEJ25z3NbBHQFfifVKVyHMdpo0j6maTnJU0DvhLLrpE0KqveGpL+KenofO2KbdsaaNIyM7OPJC0EhgIvAl/Ev47jOE4ZkTQQOBj4KuH+PBuYlaNqR+B64Fozu7YZ7VZqW953UD2K8WY8HRgPnBaLOgDXpSmU4zhOG2Vn4FYz+8jMPgCm5ql3O/CnhDIqtl2utq2CYqYZ9wf2JQagNLM3gE5pCuU4jtOGKWadbgawl6TkGlyx63u52tY9xSizzyxEIzYASWulK5LjOE6bZTqwf1zT6gTsk6feL4H/EqLeN6ddrratgmKU2Y3Rm7FLXCycBlyZrliO4zhtDzObDdwAzAFuBh4qUP1EYHVJ5zezXaO2LZe6NigqBYykEcDugIC7zOyetAVrCZ4CJjK0Dzz8WnXG9hQwTp1Q7ylgnEBRUfOj8qppBeY4juO0XZpUZpKWsPLC4mLgCeCnZvZyGoI5juM4TrEUY5n9HngD+AthmvFgYANCmu6JwLC0hHMcx3GcYijGAWRPM/ujmS0xsw/M7ArgW2Z2A7BOKYNK+omkZyTNk/RXSatL2ljSY5JelHSDpFVj3dXi+Uvxet9SxnQcx3FaL8Uos2WSDpTULr4OTFxr9gq/pB7AOGCQmfUH2hOsvfOAC8xsc+B94KjY5CjgfTPbDLgg1nMcx3Gc5RSjzEYDhwMLgbfj8WGS1gCOL3HcVYA1JK0CrAm8CXwTmBKvTwL2i8cj4znx+q6tbbOf4ziO0zKaVGZm9rKZ7WNm3cysezx+ycw+NrOHmzugmb0O/Bb4D0GJLSbEEFtkZl/Eag1Aj3jcA1gQ234R66/b3HEdx3HaEpL6SpoXj8dKmlCGPodJuqPl0pWfYrwZVydM9W0NrJ4pN7PvlTKgpHUI1tbGwCLgJmCvHFUzU5i5rLCVpjclHQMcA9C7d+9SRHMcx2nEiPefLutmyXvW2aboWaU4AyUzW1ZOGVorxUwz/pngvbgH8CDQE1jSgjF3A14xs3fM7HPgFmAnQoSRjHLtSfCghGCl9QKI1zsD72V3amZXmNkgMxvUvXv3FojnOI5THaI19ZykSwmR7w+X9Iik2ZJuktQx1hso6UFJsyTdJWnDRPlTkh4BjsvqvldM+/J8DCDfyHqL5ydLOiMebyZpWuxvtqRNs2TdQdKTkjZJ7QNpBsUos83M7BfAh2Y2iZBxepsWjPkf4OuS1oxPHrsCzwL3A5mcO2MIkZ0hRH8eE49HAfdZMWFLHMdx6pOvANcCIwizYruZ2faEvb0nSeoAXAyMMrOBhC1SZ8e2fwLGmdmOOfodTPCBGAAcIKmpqCeTgUvMbDuCwfFm5oKknYDLgZG1ste4mH1mn8e/iyT1B94C+pY6oJk9JmkK4anjC+BJ4Arg78D1kv4vll0dm1wN/FnSSwSL7OBSx3Ycx6kDXjOzRyXtDWwFzIg+b6sCjxCUXX/gnljeHnhTUmegi5k9GPv5M42XcO4xs/8CSLqFkKPytlwCxGDFPczsVgAz+ySWA2xJuGfvHrOo1ATFKLMr4jrXLwhWUkdC1OWSMbPTgdOzil8mPDlk1/0EOKAl4zmO49QRH8a/IiigQ5IXJW0DPJNtfUnqQuHtUtnXjGBQJGfoMn4Rhdb23oz1vsqK5aCqU4w341Vm9r6ZPWhmm5jZemZ2eSWEcxzHacM8CgyRtBlAXJrZghB9qbukHWN5B0lbm9kiYLGkobH96Kz+RkjqGrdV7UfIa/Y2sJ6kdSWtBuwNEBN8NkjaL46xmqQ1Yz+LCMtNv5Y0LJ233nyK8WbsAhxBmFpcXt/MxqUnluM4TtvGzN6RNBb4a1Q0AD83sxckjQIuilOLqwB/AJ4BjgQmSvoIuCury4cJU4+bAX8xsycAJJ0FPAa8AsxP1D8c+GO8/jmJGTIze1vSPsA/JH3PzB4r53svhSZTwEj6F+EJ4WlguYtodAapSTwFTMRTwDhOk3gKmNZBMWtmq5vZSalL4jiO4zglUtQ+M0lHS9owzrd2ldQ1dckcx3Ecp0iKscw+A34D/IwV3jAG1MRGOcdxHMcpRpmdRNg4/W7awjiO4zhOKRQzzfgM8FHagjiO4zhOqRRjmX0JzJF0P/BpptBd8x3HcZxaoRhldht5Qp44juM45UNSX+COmLi4mPqrEUIBdgPOIUTkuJywL2xHM/s4T7ulZtaxHDLXCk0qs1reT+Y4jpMm45Y9UNbNkhe1G1buxMJfBTqY2QAASZcDvzWzP5V5nJon75qZpBvj36clzc1+VU5Ex3GcNsUqkibFe+2UGMbqVUndACQNkvSApPWA64ABkuZIOhY4EPilpMmSOkq6N6ZveVrSyOyBFPiNpHmxzkGVfavlo5Bl9uP4d+9KCOI4juMAISr+UWY2Q9JE4Ee5KpnZQknfB042s70BYrzGO8xsSsz/uL+ZfRAV4aOSpmal0PoOISXMdoSpypmSppvZm9QZeZVZ5s2YWZXiITmO47RJFpjZjHh8HVCqs50IwYB3IYQi7AGsT0jjlWEo8Fcz+xJ4W9KDwA6EDCl1RTEOII7jOE7laCpVy+oUx2igOzDQzD6X9GqOtuVew6saxewzcxzHcSpH70x6F+AQQrT7V4GBsey7RfbTGVgYFdlwoE+OOtOBgyS1l9Qd2AV4vGTJq0ghB5B749/zKieO4zhOm+c5YEx0tOsKXAacCVwo6SHC3t9imAwMkvQEwUqbn6POrcBc4CngPuAUM3srR72aJ28KGEnPAj8k7Fk4lCxz1Mxmpy5diXgKmIingHGcJvEUMK2DQmtmvwROBXoCv8+6ZsA30xLKcRzHcZpDIW/GKcAUSb8ws19VUCbHcRzHaRbFRAD5laR9CQuDAA+Y2R3piuU4juM4xdOkN6OkcwgbqJ+Nrx/HMsdxHMepCYrZZ/ZtYICZLQOQNAl4EjgtTcEcx3Ecp1iK3WfWJXHcOQ1BHMdxHKdUilFm5wBPSromWmWzgF+nK5bjOE7bRNLS+HcjSVNa0M8Bkp6LuShTQdJYSRPS6r85FOMA8ldJDxDidQkY39JNdZK6AFcB/Qlu/t8DngduAPoSdrsfaGbvSxJwIfAtQsbrsbW8x81xnNbDhGU3lnWz5PHtDiw6fJSZvQGMasFwRwE/MrPUlFktUdQ0o5m9aWZTzez2Mu0OvxD4p5n1I0Rrfo6wp+1eM9scuDeeA+wFbB5fxxB2wzuO47RqJPWVNC8ery7pTzFNy5MxPFXGMrpF0j8lvSjp/Fj+S0IQ4ctjipf28e/MmFrm2FhvmKQHJd0o6QVJ50oaLenxONamsd4+kh6LY0+TtH4OebtLujmOMVPSkEp9VlCF2IyS1ia4+V8NYGafmdkiYCSQSQQ6CdgvHo8ErrXAo0AXSRtWWGzHcZxqchyAmW1DiNc4SVImaPAA4CBgG0KcxV5mdhbwBDDazP6HYKUtNrMdCLNsR0vaOLbfjuCxvg1wOLCFmQ0mzJ6dEOs8DHzdzL4KXA+ckkPGC4EL4hjfje0rRjWi5m8CvAP8SdJ2hDW4HwPrJ9LOvBkTz0FIW7Ag0b4hljXKtyPpGILlRu/evVN9A47jOBVmKHAxgJnNl/QasEW8dq+ZLYblYQj70PieCbA7sK2kzLRlZ8Js12fAzMy9V9K/gbtjnaeB4fG4J3BDNCRWBV7JIeNuwFZhZQiAtSV1MrMlpb3l5lHQMpPULmPmlpFVgO2By6KW/5AVU4o5xchRttI8tpldYWaDzGxQ9+7dyyOp4zhObVBore3TxPGX5DZSBJxgZgPia2MzyyitZPtlifNlib4uBiZEy/BYcqehaQfsmBijR6UUWWbwvMS9ZU9JKqep0wA0mNlj8XwKQbm9nZk+jH8XJur3SrTvCbxRRnkcx3FqnemEyPdI2gLoTXCaK5a7gB9K6pDpQ9JazWjfGXg9Ho/JU+du4PjMiaQBzei/xRSzZrYh8IykeyVNzbxKHTA6kCyQ9JVYtCshsshUVnxIY4Db4/FU4AgFvk6Y9627lN6O4zgt4FKgvaSnCV7fY83s0ybaJLmKcJ+dHWfb/kjzlpnOAG6KKWjezVNnHCHlzNw43fmDZvTfYvKmgFleQfpGrnIze7DkQYPGvoow9/oycCRBsd5IeOL4D3CAmb0XXfMnAHsSXPOPNLOC+V08BUykXlLAZObYPWWMUwU8BUzroJh9Zg9K6gNsbmbTJK0JtG/JoGY2B8j149k1R10jevI4rZQh7rDjOE7LKCbQ8NGEda0/xqIewG1pCuU4juM4zaGYNbPjgCHABwBm9iKwXsEWjuM4jlNBilFmn5rZZ5kTSauQwzXecRzHcapFMcrsQUn/C6whaQRwE/C3dMVyWhVD+xS+PqRPeDmO45RIMcrsVELEjqcJm+XuBH6eplCO4ziO0xyaVGZx4/Qk4FfAmcAka8qf33Ecxykbkl6V1K3Etg9IKsvWA0knRo/2mqNJ13xJ3wYuB/5j11c6AAAgAElEQVRNCImysaRjzewfaQvnOI5TTaa9f1FZH9x3W2dc0SlgapQTgesIe35rimKmGX8HDDezYWb2DULgyQvSFctxHKdtIumwmIJljqQ/SmpfzHVJSyX9TtLsGLEpGaT2gNjmBUk7x/p9JT0U68+WtFMsHxatuSmS5kuaHCMwjQM2Au5Xigk/S6UYZbbQzF5KnL/MiriJjuM4TpmQtCUhncsQMxtACBw8usjrawGzzWx74EHg9ETXq8S0LicmyhcCI2L9g4CLEvW/GutuRch0MsTMLiLExR1uZsOpMfJOM0r6Tjx8RtKdhFBTBhwAzKyAbI7jOG2NXYGBwMyYSmUNGhsPha4vI8RthDAVeEuiXeZ4FtA3HncAJsTwgl+yIqUMwONm1gAgaU5s83CL3lnKFFoz2ydx/DaQidH4DrBOahI5juO0XURwsjutUaE0ttD1PCTX+zJBiZMpYn5CuLdvR5il+yRH/ew2NUteAc3syEoK4qRArezdqhU5HKf2uRe4XdIFZrZQUlegU1PXzew1gkIaRcgEfShNW1KdCem4lkkaQ3Exd5dEefJFzq8axXgzbkxInd03Wd/M9k1PLMdxnLaHmT0r6efA3ZLaAZ+TCLRe4PprhETHW0uaBSwmrIMV4lLgZkkHAPfH9k1xBfAPSW/W2rpZMSlgngKuJmyaXpYpb0kKmLTxFDCR8bvAedOrM3YyBUxTcozfJfytlqxOm6a1pICRtNTMOlZbjmpRzDzoJ9GLxXEcx3FqkmKU2YWSTiekxF6+KGhms1OTqhZpTrJJp3T8c3ackmjLVhkUp8y2AQ4HvsmKaUaL545TXk7ZudoSOI5ThxSjzPYHNkmmgXGcJklmjx5Yp5mk3Up0nLqhmAggTwFd0hak5hlSpzfkWkH1HpLOcZxaphjLbH1gvqSZNF4zc9d8pzzUq+XmOE7NUIwyO73pKo5TOtNGDAZgN2DaqaPYrbrirMCtcadGkHQWMN3MpjWjTXfgDmBVYBywAXAW8Fat7RErB00qs1reT+a0DuZ33gCgdpSY40Qa5o4v66Jpz23PK2m+3cx+matcUnsz+zJPs12B+WY2Jtb9J/AjM6u5iPfloJgIIEtYEeNrVUJwyg/NbO00BXMcx2mLSPoFIRL+AkLYqFlAf+AOM5si6VVgIrA7IVBwJ+AYwv35JYL3+RbA+cAaMVDwrcBQQj7KqcCpwLnAMGA14BIz+2Ol3mMaFGOZJeOCIWk/YHBqEjmO47RRYkbo7xJSsKwCzCYos2w+MbOhsc26ZnZlPP4/4Cgzu1jSL4FBZnZ8vDYcONnMnpB0DLDYzHaQtBowQ9LdZvZK6m8yJYrxZmyEmd1GGfaYSWov6UlJd8TzjSU9JulFSTdIWjWWrxbPX4rX+7Z0bMcpCg+Q7FSeocDtZvaxmS0B/pan3g2J4/4xyebTBItu6yLG2R04IlptjwHrApu3QO6qU8w043cSp+2AQTROLVAqPwaeAzLTlecBF5jZ9ZIuB44CLot/3zezzSQdHOs1FUDTcVqOe1k6lafYNbVkUOBrgP3M7KmYKmZYkeOcYGZ3NUu6GqYYy2yfxGsPQgqAkS0ZVFJP4NvAVfFcBGtvSqwyCdgvHo+M58Tru8b6Tmsm+yv2r9xpGzwM7CNpdUkdCffJpugEvCmpA4ms1E1wF/DD2AZJW0haqySJa4Ri1szSyGv2B+AUVuTpWRdYZGZfxPMGoEc87kFYCMXMvpC0ONavuXw6ToqUy03eo3o4NYyZzYwOGk8R0ro8QUjnUohfEKYKXyNkN+lUuDoQDIm+wOxoHLzDCgOiLsmrzOLiYT7MzH5VyoCS9gYWmtksScMyxbnGKOJast9jCB499O7t00OO47ScUl3pW8hvzewMSWsC04HfZRw8AMysb7KymV1GWJIhq/wawhRk5nxY4ngZ8L/x1SooZJnlStS2FmENa12gJGUGDAH2lfQtYHXCmtkfgC6SVonWWU/gjVi/AegFNEhahZAd9b3sTs3sCkLiOAYNGuSP3o7j1CtXSNqKcH+c1OYylJRIXmVmZr/LHMd9DD8GjiSk5P5dvnZNYWanAafFfocRXEVHS7qJFSm/xwC3xyZT4/kj8fp91lRGUaf6NMMT8AXWK2t/hftxq92pbczs0GrLUI8UdACR1DXuW5hLUHzbm9l4M1uYgizjgZMkvUSw/K6O5VcD68bykwib/ZxWxG3zNuW2eZtWWwzHceqYQmtmvwG+Q5i628bMlpZ7cDN7AHggHr9Mjs3YZvYJcEC5x3bSpWH0jvRMFrTQIlqpv1LxvWOO0yoptGb2U0KU/J8DP0t4w4vgANK2wln5TTA1uk2O04zbVlcOx3Hql7zTjGbWzszWMLNOZrZ24tWpzSkyp3jiQ8/8Xj2aqJibTNDhlcpL7M9xnLZBs8NZOU4x5FNKpTK1c5nMNo/q4dQwkvpKmteC9sMk7VREvTMknVzqOEX0P1bSRmn1n4ti8pk5TuvGN1I7+bjxsPL+MA68LrV9a3Hr0jBgKfCvtMYpkrHAPFZssUodt8ycVLh98ZYta+cu9E7bpb2kKyU9I+luSWtIOlrSTElPSbo5bqhG0jWSfi/pfkLw4R8AP5E0R9LOkrrH+jPja0hinO0k3ReDux+dKZT0P7HuXElnJsoPk/R47PuPMVh8+yjDPElPS/qJpFGEGL6TY901KvGhuWXmOI5TW2wOHGJmR0u6kZAS5pbsNC/AxbH+FsBuZvalpDOApWb221j3L4QA7g9L6k2IyZh50twW+DohGMaTkv5OyJu2OcGzXMBUSbsQwl0dBAwxs88lXUqIA/kM0MPM+sfxupjZIknHE9PNpPUhZePKzEmF5xd0gXWqLYXj1CWvmNmceDyLEEOxf1RiXYCOBKWU4aYC2aZ3A7ZKeKOvHYNgQEw1A3wcLbvBhBQ0uwNPxjodCcptW2AgMDP2tQawkJCiZhNJFwN/B+4u9U23FFdmjuM4tcWnieMvCYrjGvKneckVejBDO2DHqLSWExVS9nqgEayxc7KzTks6gRBa67TsASRtR8iochxwIPC9AvKkhq+ZOU694+lx2gLFpnlZQuOo+XcDx2dOJA1IXBsZU82sS1COMwkW3/di+hkk9ZC0HnAvMCoeZ6JD9ZHUDWhnZjcTovdvn0eO1HHLzHGaota9Hd1Zpi1QbJqXvwFTJI0ETgDGAZdIyoQknE5wEgF4nDA12Bv4lZm9AbwhaUvgkWi9LQUOM7NnJf0cuFtSO+BzgiX2MfCnWAYx7i7Bkrxc0sfksAzTwJWZ4zhOPlJ0pc+Fmb1KcMLInP82cTlXmpexWecvsHIsnYNytDujgAwXAhfmKL+B4DGZzfY56t4M3JxvjDTwaUYnFXb+kUfsyItPCzpO2XFl5tQnQ/uEl+M4Dj7N2Hxqff2kjdBw6cEA5Ymk7zhO3eOWmVMZxu284tgtKsdxyowrM8dpilr3FvT0RI7jysypDA39KuQQ4s4VjtMmcWXWXGr9Kd2pffw35DQDSV0k/ShxPkzSHS3s85oYEDi7fJCki4rs4wFJg1oiRzlxB5Dmklz7cdLDp86cWmD8LuX19jpveilTB12AHwGXlkOEmComJzEw8ErBgSWtYmZflGP8tHDLrJlUbLrMqRx1bilNO3WlB2ynjpF0UkypMk/SicC5wKYxncpvYrWOkqZImi9psmK4DkkDJT0oaZakuyRtGMsfkPRrSQ8CP4597CbpIUkvSNo71ltu9cUEnldIuhu4NqaiuT6mhrmBEDOyZnDLzKk8bnU5Tk4kDQSOBL5GCPr7GHAY0N/MBsQ6w4CvAlsTkl/OAIZIeoyQFmakmb0j6SDgbFYE/u1iZt+IfVxDiMb/DWBT4H5Jm+UQaSAw1Mw+lnQS8JGZbStpW2B2md9+i3Bl5rQuirGyWtlewfmdN2C3agvhlIuhwK1m9iGApFuAXGsbj5tZQ6wzh6CYFhFCYd0TDbX2wJuJNtmhqG40s2XAi5JeBvrlGGdqIq7iLsBFAGY2N8Z7rBlcmdUSrewmWze4pejUDsWuqWWniVkltn3GzHbM0yY7VUyuFDDNbVMz+JpZPZO2G3prdXPPtt4GprtmNu39opzDHAdCVPv9JK0paS1gf8I0YjHpVJ4HukvaEUBSB0lbF6h/gKR2kjYFNontm5JtdOy7PysHNK4qbpk5bZ6Gfj08LJZTE5jZ7Lie9XgsusrMZkmaIWke8A9C2pZcbT+L7vYXSepMuL//AXgmz3DPAw8C6wM/MLNPVPgB9jJCupe5wJyEjDVBxZWZpF7AtcAGwDLgCjO7UFJXwpxuX+BV4EAzez966VwIfAv4CBhrZjW18Fg16sgLb34vVxhlw6ejK0dprvQtwsx+D/w+q+zQrGoPJK4dnzieQ1jbyu5zWNb52DxjP5DpOztNTFw7O7gJ8atGNaYZvwB+amZbAl8HjpO0FXAqcK+ZbU7IanpqrL8XsHl8HUOOnD6VZH6vGnLN97WeytDU3sJKx5pszkOM1Hqnix0nQcWVmZm9mbGszGwJ8BzQAxgJTIrVJgH7xeORwLUWeBToktk70eqoNUur1uRJML9Xj4o9WJS0tzANBeKKyXHyUlUHEEl9CfslHgPWN7M3ISg8YL1YrQewINGsIZY5rZiG0fkcssrP+f33Cgd5FMVt/QdWTJZiyKS/cRxnBVVTZpI6EtJqn2hmHxSqmqNspQUDScdIekLSE++88065xKxtUvbCawlbzGj805rfeYMqSdJyXlj+XFXnuGXntGKqoswkdSAosslmdkssfjsRemVDYGEsbwB6JZr3JOx6b4SZXWFmg8xsUPfu3dMTvo6YcM7xTVeqEK1GIVSTIb1bNvXb0vaOU8NUXJlF78Srgeei106GqcCYeDwGuD1RfoQCXwcWZ6YjWx215tBRa/KUgTYXW7OcCsytOqeGqYZlNgQ4HPhmDJw5R9K3CME0R0h6ERgRzwHuBF4GXgKuJESPdpzSaWbmg+cWr5uSIHWGW3V1g6SxkjZKnL8qqVs1ZUqbiu8zM7OHyR+yZdcc9Q04LlWhmsHUztumFgevYfSOtbMX68bDytrdbfM25aJKxAsoozXZos3UtXLjz6W4S92n1hbTHw3tU94NfQ+/lrp5K6k9MBaYR44lmdaKh7OqFcbvUnZX8/Pnle4R2NCvR1UdTJryIJzaeVumdm6+dqzYPsFanqItVtFWev+cg6RTJI2LxxdIui8e7yrpOkmXRUe3ZySdmWj3qqRfSnoYOAQYBEyOM1+ZVC0nSJot6WlJ/WK7rpJui2ldHo3R8JHUXdI9sf4fJb1W65adK7PWisS78ztWW4rldJtcGw4gFfOqbM6DQJmt4CYp0cKaMGrfMgvi5GA6K6LkDyLkLetAiKb/EPAzMxtEiIv4jYzyiXxiZkPN7DpCgs3RZjYgEfX+XTPbnhB44uRYdibwpJltC/wvIToTwOnAfbH+rUCNTDXkx5VZLqq00F30jbZI+fa/qDMADXPHlyRPm3OWqBLTRgxuVv2WWpfNHc+pKLOAgZI6ESLjP0JQajsTlNmBkmYDTxLymW2VaJud4iWbjOf4LELYQAhK8s8AZnYfsG6M6zgUuD6W/xN4v0XvqgK4MisnNeTtNe29C6stQnpIPLd43fI7ZtTKOlc58CnCusTMPifEpj0S+BdBgQ0nJND8mGBR7Rotqb8DqyeaZ6drySaTNiaTMgby7+OtnZtZkbgyy0WpN7VK3QzTGidLGddUHMoiqWTkkOXUyvpYUoGlKVMNPbS1UqYTlNZ0gjL7ASFK/doEhbVY0vqEuLX5WEJxaWOSaV2GEaYiPwAeBg6M5bsD65TyRiqJK7NclHojqJWbWpk4j+HVFiE92nA0jFIcZxrRmizY2uQhYEPgETN7G/gEeMjMniJMLz4DTCTkOcvHNcDlWQ4guTgDGBTTupzLir2+ZwK7xynNvQgZq5eU/I4qgOczy0UNh4kCilKaVQsfVeyNLqNIPJVJ8TTluJH4XUw7dVRqW0jaFBVwpc/GzO4FOiTOt0gcj83Tpm/W+c2EKEsZ+iauPQEMi8fvEYK5Z7MY2MPMvojJPoeb2ac56tUMbpnloNYdH6oylZYhYc2U6lhSEyQiY7SWTdHTTh1VbRGc1kNvYKakp4CLgKOrLE+TuDJrTYxfKSdffdGMab/nF3Th+QVdmj1ErhiRpfRTTSpqdbfh6di2jJm9aGZfNbPtzGwHM5tZbZmawpVZHbI8ZUlLac5NKlO3DOslhSzLiimWIX1Wnq6tkwgX+YI2V0zJtbK1Yad14MosB/XoxQfln34sSrHUkjVYTxZEyhZPi508AMbtzLT3Lsy9zaPSG70dpwlcmdUDtXDjyFhkWU/lpSjQ1B4WSrQa04iUUrZoGeN3qa0HBsepUVyZ1SqJPUPFOqSkalHGKbhs5VXWLMzldPmudSutmNQsEg2jd1zpM8/nsOI545y2jCuzGqXh0oOXH+dTUmXxukze9If0bjT9VfHYjtlrMdVUSDWsDCvpsHIew1fab1hWr8ka/pyrgaS+kuZVW45SyZF65kRJazazj2GS7mju2K7MkiSnc9rKP1mlN8CWI8xSMTKf0oQzx8DeTe4nLKvVWQ3K8BvO5TXayNFkaJ/mf6f19L8lWVlfrZ+xwEaJ8xOBZimzUnFlViwV2Ejd0mmighE7ir2B5Jn+qpngtEXeOJtay2vo16M29xOW6Ub/3OJ1m1bo1aJW5aod2ku6MqZ5uVvS1jESBwCSNpc0Kx4PlPSgpFmS7pK0YSx/QNJ5kh6X9IKknWN5X0kPxdQusyXtFMs3lDQ9RgyZl6i/VNLvYt17JXWP5QNiypi5km6VtI6kUTROPfNjgmK7X9L9sd3ukh6J/d0kqWMs31PS/JjC5julfGiuzGqUsrnfN8WQ5sXza/G6XDPcunN60RXZvmIeqeW2MpIPEi21mgf2rkmlXdVN//XB5sAlZrY1sAj4KiEe44B4/Ujgmpga5mJglJkNJIS4OjvRzypmNphgHZ0eyxYCI2Jql4MIG6IBDgXuMrMBwHaEWJAAawGzY/0HE/1cC4yPAY+fBk43syk0Tj1zISE56HAzGx7zof0c2C329wRwkqTVgSuBfQjZAUraY+LKLEMTN6VauyE0m3w3xjwWZ7YyKNceppJuZEVbleXd/5SxlAuuUdVanMJ8jkPViKJfT9OJtcUrZpZRJpl0LVcBR8Ys0gcBfwG+AvQH7pE0h6AoksnRc6V86QBcKelp4CZWpJCZGfs/A9jGzDJxGJexIrXMdcDQmCKmi5k9GMsnAcW43H49jjcjyjsG6AP0i+/5RTOzOE6zcWWWoVamPmrRFTuNm9INo8OrjH03jN6xbvcI5iLpBJSkOY4583v1KPkzmTBqX96d37HsjkCt6TtKiWQMxEy6lpsJAX/3BmaZ2X8JaVqeiVbQADPbxsx2z9FPMuXLT4C3CdbXIGBVADObTlBIrwN/lnREHtlasu4n4J6EvFuZ2VFl6BdwZVYapdyAW6qgcrSvmINCcxR9E9ZRSTeypPUzsHfzI3XUooWQKwJJCszvvEG6kUHqJGpKvWNmnwB3EbJE/ykWPw90j4GAkdRB0tZNdNUZeNPMlgGHA+1j2z7AQjO7Erga2D7Wbwdk3FcPBR42s8XA+5l1tdhPxkrLTj2TPH8UGCJpszjmmpK2AOYDG0vaNNY7pKnPIxeuzCLZ018TviyQtLUUK65IB5LMvqKrpmy3Unk2zXIYyXPjbOjXo0lrsGH0jty+eMvixyqC5Ws5WZ9lt8k53lP2Ru1amvLNczN/ZJcs9/UyKNQJo/ZtejN2Qp75vXrwAus1/TuptZkAJx+TCRbM3QBm9hlB0ZwXAwLPAXZqoo9LgTGSHgW2YEVCz2HAHElPAt8FMgvWHwJbR4eTbwJnxfIxwG9i6pgBifJraJx65grgH5LuN7N3CN6Of43tHgX6RUV9DPD36ADyWnM/GPAUMEVzW/+BHN9UpQIKa9qIwUWl5Fhubc1vXD6/V49Gk+EQPdbKkDIvs29ot3On5Jza2mL+qQzp1VBcZ8nPQFopxcv8zhvQb/Fbjcq2nBGzXQxJHOeTdcRg+i14vThZkuSQpVmM34UJ54RfwPHtDixYj/Oml2XMpBXbc2gfmP6b5rXvvMGKDdbjdoaLHiq+sQSFHuiKoZiHvlpbc8zGrKJmvZm9SlgHy5z/NnF5KDDRzL5MXJ9DjvUqMxuWOH6XuGZmZi8CyVhnp8XySYS1r1wy/QL4RVbZHMIaWHbd7NQzF8dX5vp9wA452v2TsHZWMm6ZFUley6RCU1i5poqatXk2qWQyzgA5biRNrbGUJeZfgobRO7LFjHZsMaPATzEhe0vHXyl6RqmOEaXEVsxlAZfh95Pvt5lmRJCC1nFzPhufpiwKSbcCR7DCYnKycGVWJHkVRylPliXcwE6ZMqL540RWUk6JabtG624De+eM+FCIYqYfi54WzGPZZrcvpGwzSn8lpXfD6Eant/UfWHjNcUjv5Yrv3fkdaRi9I4/sMmrl6UOK9NAc0psJ5xy/3LrLX2/Fd9PoPRS46Rd6qJlxT09m3JNt0zdmufxJJdTE77rZ67XZv/l43pwp47rOn9dCzGx/M9s2WlmVHLfCYYBKx5VZghGnXrL8+JFdRjX65865lkNjj7M1V1jTjakxB4TkzTf59N7Qr0fePGH5bojPL+iS/0k8S4E0KVeBG9vDpxXn0p9TuSamu55f0IVpIwYvX0vK5zFYrHNGwZtxfP/nMbygMsr38HDbvE1zlmez849atoZ49XbnhYNTdi6oxPI+uGS/t4ynanaZ46RI3SizuEP8eUkvSTq1woMz8vzVgJVvMEf2yopon2sqKXvtoJnWXL6ptea4TOe86cYbdi5rrKB1lnh/787vmDdqSC5nhWIdSXJZQFA4K/T8Xj0aK+ICjg23zdu0sLJoymEnccNuykNzvX1WdjBLBhAe2nWbRuUZkt/viBHNs0oKWWu3zds072eTT7lPe/+inH3m+l1lHFWS72WlerW+VubUHXWhzOJGwUsI+yy2Ag6RtFXhVumRK9DqtPcvylFzBY2UQwku2eMPasLTI4dllG8daqc8riw7cTzdJq+X0wrd/6LOK5XN79WD8QetQ8OlB+e8CWYU1239BzZy7ChmGrPQGlqxruaZm+m0U0fltaCSimjCqH0bpdtpanoOwsNMPnmSynzEiPHLpyknJB05kg86TazfTTxtJBNPGxlO8lj7yff53OJ12f+izit9d90mr7fiN9yMWYN8FmBJ3qW5LNWhfRi37AHPbu2URF0oM2Aw8JKZvRzdUa8HRqY12Iyu4xoXJG44RVtDQ/s0vQF6/C4tiszQb1YifmeW9ZdtAWUUWHLdYdqpo3hu8bo511Wyn8KTymV77skt0NA+jW7gmT6SsmSmMXfi+LxKNZukwnl+QZfGjg2Jm955DG/0/WSs5vmdN1g+1rvzOzK187YctV0vjtquVyPFesqUEctjUBZ0gS/yRpv9vjNMPG1kbkebAlOR6+2zNVvO6LD8oaD3U//JKUv2Z5Uk30NHTgrIklw7PLLXYS3a7zi/V4+VHwSbSo9TjWgmTs1TL8qsB7Agcd4Qy8rGStOFCcadc9by40YKhMY3jEbWU8L6mnDO8Y2mmho5DDTXShu/y/I9aCPPX63Rzez5BV2WRzFPjve9BfvnVMLnMbyR/O/O78jI81dbPqWai1xrV8sV07idc04PJmXJyJErskS+7+B7C/ZfqWy5BZnH/TujpCEoj4y1uf9FnVeaqsx8p/1mrbncypp42shGFk0jxZO1BrfcWgLOPD+45W8xox3/PXeLnLIlrdRCziPZv7UkR23Xa/lx5kHjucXrLpe/2+T1GllSvfudw76Tz2LfyWc16mfEe3NzytK73zl5x056nzZSmBIM7dNI2TXMHb/8AWrCshtXjBWtuezv9rnF6zLtbz9l2t9+uqJPqdFD2Ii/5ckO4tZcm0bWkr03FULSAcAeZvb9eH44MNjMTkjUOYaw8Q5CzLLnmzlMN6CinkI+po/pY9bEmH3MrHtKfTsVol42TTcAvRLnPQnRmJdjZlcQdpuXhKQnzGxQqe19TB/Tx2xdYzr1Rb1MM84ENpe0saRVgYOBqVWWyXEcx6kR6sIyM7MvJB1PCLTZnhDS5Zkqi+U4juPUCHWhzADM7E7gzhSHKHmK0sf0MX3MVjmmU0fUhQOI4ziO4xSiXtbMHMdxHCcvrswcx3GcuseVmeM4jlP3uDJznDpCUm9JXeJxX0mjJPVvqp3jtHbapAOIJAEHEFKQTyGkAx9JyO98uZktS2ncPYD9CKG4jLDx+/aYZTWN8TJ78t4ws2mSDiWkVX8OuMLMPk9p3M7AnjR+n3eZ2aI0xotjrg10N7N/Z5Vva2Zz8zRryXgV/w3FbBHHAp8CvwVOBmYQMv5ebWa/L/eYcdx+hO/yMTNbmijfM8Xf7nDgu4RgCV8ALwJXmdlLaYzn1D9tVZldCqwHrAp8AKwG/A34FvC2mf04hTH/AGwBXEuIaAIhkskRwIspjTmZsP1iTWAR0BG4BdiV8N2PSWHMI4DTgbuB12NxT2AEcKaZXZvCmAcCfwAWAh2AsWY2M16bbWbbpzBmNX5DzwCDCN/nq8AmZvaOpLUIiqbsFpqkccBxhAegAcCPzez2eC2tz/ZcYH3gXsLD3yvAC8CPgF+b2U3lHtNpBZhZm3sBT8e/HYD/AqvG81Uy11IY84U85SIoszTGnJt4X28D7RNjzk1pzOeBLjnK18n3GZRhzDnAhvF4MME6+k48f7IV/YYy32d7guJul7g2L633CXSMx32BJwgKLfXPNvF5zkj8hlJ5n/6q/1fdbJouM18AmNnnkmZaSCuDhUgjX6Y05ieSBpvZ41nlOwCfpDRmuzjVuBbhab4z8B7BiuhQqGELEGHqLZtl8VoatDezNwHM7PE4RXWHpD4sgMMAAAeESURBVJ55ZCkH1fgNzZb0F8L3eS8wSdI/CVOcz6Y0ZnuLU4tm9qqkYcAUSX1I7/tcJqmrmb0HbERQ3pjZ+3F613FWoq0qs7ckdTSzpWa2Z6ZQ0gbAZymNORa4TFInVkwz9iJMUY1NacyrCVZKe+BnwE2SXiassVyf0phnE266d7MibU9vwjTjr1Iac4mkTS2ul5nZm/Gmexuwcprn8lCN39D3abxONxg4lGANX5LSmG9JGmBmcwDMbKmkvYGJwDaFm5bMr4EnJT0P9AN+CCCpO/BUSmM6dU6bXDPLR1x7WMvMFqY4xgaExXQBDWb2VlpjxfE2AjCzN6IX3G7Af3JYiOUccx1gDxLvk+AA8n5K420HfGhZzgGSOgAHmtnkNMbNI0vqv6E4TlfA0vpME+P0BL7I9TuVNMTMZqQ0bldgE0JS3tQch5zWQ5tVZtXwuCsgSz8zm59S3yI8wSff5+PWVr/4MlLp35Ck3sD5hGnFxYQHhbWB+4BTzezVlMat+G+olv4/nfqgTe4zix53s4FhhLWktYDhwKx4rdLcnUanknYnuDSfQfCy+zZwJvBivFZRJD3dWsas0m/oBuBWgrPL5ma2GbAhYTo1lWnjavyGavD/06kD2qRlFufiv5b9lBenxx4zs9z57ls25kX5LgFjzGztFMZ8Dtgr+4ld0sbAnWa2ZQpjfiffJcL+q7Jn9K3SmNX4Db1oZps391oLx6zGb6jin61T/7RVB5BqeNwdCfyUsOE1m0NSGnMVVjibJHmd9LwZbwAmk/vzXb0VjVmN39CsuL9tEiuca3oBY4AnUxqzGr+hany2Tp3TVpXZ2YQbwz1UzuNuJmGPzL+yL0g6I6UxJwIzJV1P45vfwQRPxzSYC/zWzOZlX5C0Wysasxpem0cARxGm+TLONQsIm7WvSmnMavyGqvHZOnVOW51m3Iywf2UjGnvcvQG8blkhkco0ZlfgY8IT52b/3979hFhZhXEc//7IFmNYkIREZdEirMixcpFmYRKtKsgCF1OLjAI3o7mQMKhFiwKR/mAEtiiKqRaVFi3ajGhEhCU4/ygXLfzTolWUpWCNT4tzbl6nO3eamXvuve/c3wcu951z557zzuWd97nnfc95Tn7+KSJKzTGrtXszKc1S/d/5eUQUmZck6R7geEScaPDa6oj4fiG0meu+EniANo3anGFftkXEa4XqbusxlNvsms/WqqFXg9kXwM6YkrNP0mrgxYh4qECbi0jzZzYDx0mDb64F3gGejwJ5EiUtb3SC75SSJ9xeJ+lERCwvUG9XHUNm0+nVYDYe0+SxkzQWES2fDCrpVWAJ8GxEnM5ll5MSxp6NMrn8/s2dJ+mTiHi01W3Mcn9KnXBfaPJyRETLL01JOk3j+zrKbbZ8QM8M+3MyIq4rUG/bj6Fu+2ytGnr1nlmzQQF9hdp8ELipfm5ORPwuaQspS0fLgxkX3yy/sUD9s1Xq5v2fDcoWkzJmLKXAfZaIWNLqOuep1LfSth9DXfjZWgX0ajD7TtLTEfF2faGkp4AjhdqMRpNMI2JSUqkTUUyz3SlF9iEidte2c7qwraTLuR8Bu6d7X9XM0GMp9SWs244hs4Z69TLjMtLk03NcCF6rSct5PFIixZSk/cCnMWUJFEmPk1IuPVygzUlSr6V2sjtTe4lCl2tmOuFGRJEvUHnAwHZggDR0/XUPFpi/ThxDZnPRk8GsJmdXr907m4iIAwXbuoa0lthZUgANUsb8PlIA/bnJ260JSbuAjcBe4M2oW0DSzHpDTwezTpC0gZTJXaQAOtzhXao8SedJk9H/5uJeoXsPZj3CwczMzCqvJxMNm5nZwuJgZmZmledgZh0lqdhgDUk7p/z8n7yYc6z3XUmP5e2Dko5JGpX0o6Q9eRFUM2sjBzNbyC4KZhGxtlA7AxGxElhJGojyWaF2zGwaDmbWdSRdL2k493aG8wrLSFomaZ+kkfxYm8v3SzoiaULSM7nsFaBP0lFJQ7nsj/wsSbskjUsak7Qpl6/PPa2Pcy9rSNL/zloSEeeAHcBySf0t/VDMrCkHM+tGe4D3cm9nCKgtbPoGcCgi+oE7gIlcvjki7iRNfB+UtDQiniPlvFwVEQNT6t8IrAL6gfuBXZKuzq/dDmwDbiGlb7p7NjseEZPACLBiNu8zs/lxMLNutAb4IG+/D6zL2xuAtyAFjYj4LZcPShoBviWttTXTisvrgA9zHb8Ah0gT2AEOR8SpiDgPHAVumMP+ewFJszbr1dyMVi3TToaUtJ7Uu1oTEWckHWTm1aWbBZv6lcAnmeX/iKRLgNuAH2bzPjObH/fMrBt9Q1rJGFKuxa/z9jCwBVLQyEvoXAH8mgPZCuCuunr+knRpg/q/AjblOq4C7gUOz3enc1svAyenrpVnZmU5mFmnLZZ0qu6xHRgEnpQ0CjzBheVxtgL3SRoj5be8FfgSWJR/9yXSpcaavcBobQBInX3AKOne1gFgxzyTSw/l9seBy0irMptZGzmdlZmZVZ57ZmZmVnkOZmZmVnkOZmZmVnkOZmZmVnkOZmZmVnkOZmZmVnkOZmZmVnkOZmZmVnn/APsWCxNThFC/AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# excluding the top few animals\n",
    "# the leveling around 10 is because many species have very few instances\n",
    "fig2 = show_species_dist(ss_file_template, plot_title=plot_title, ordered_species_list=top_20, log_scale=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Multiple species per image"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train has 32865 images, 32873 annotations\n",
      "val has 25000 images, 25070 annotations\n",
      "In total there are 57865 images, 57943 annotations\n"
     ]
    }
   ],
   "source": [
    "cct_images, cct_annotations = get_images_annotations('/beaver_disk/camtrap/caltech/benchmark/cct-20/CaltechCameraTraps-20_v2.1_{}.json')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train has 314591 images, 315605 annotations\n",
      "val has 96823 images, 97253 annotations\n",
      "In total there are 411414 images, 412858 annotations\n"
     ]
    }
   ],
   "source": [
    "ss1_images, ss1_annotations = get_images_annotations('/beaver_disk/camtrap/ss_season1/benchmark/SnapshotSerengetiS01_{}.json')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def num_images_multi_label(annotations):\n",
    "    image_id_to_num_labels = defaultdict(int)\n",
    "    \n",
    "    for a in annotations:\n",
    "        if 'category_id' in a:\n",
    "            image_id_to_num_labels[a['image_id']] += 1\n",
    "    \n",
    "    counter = defaultdict(int)\n",
    "    for i, num in image_id_to_num_labels.items():\n",
    "        counter[num] += 1\n",
    "    print(counter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "defaultdict(<class 'int'>, {1: 57787, 2: 78})\n"
     ]
    }
   ],
   "source": [
    "num_images_multi_label(cct_annotations)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "defaultdict(<class 'int'>, {1: 409988, 2: 1408, 3: 18})\n"
     ]
    }
   ],
   "source": [
    "num_images_multi_label(ss1_annotations)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0034660949797527553"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(1408 + 18) / 411414"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
